文章目录1.关联式容器2.树形结构的关联式容器3.set3.1认识set3.1set的使用4.multiset5.map5.1认识map5.2pair5.3map的使用对map中[]的理解6.multimap1.关联式容器在初阶阶段,我们已经接触过STL中的部分容器比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。而今天我们要学习的几个容器称为关联式容器,那什么是关联式容器?它与序列式容器有什么区别?关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的键值对,在
c++之STL详解泛型编程什么是STLSTL发展STL组件容器类型成员适配器STL迭代器STL算法顺序容器向量vector双端队列双端队列实现列表listc++关联容器c++mapmultimapsetmultiset迭代器函数对象集成函数对象自定义函数对象标准c++库中算法STL算法头文件标准函数泛型算法例子自定函数作为算法参数泛型编程泛型编程是一种编程方法,它允许程序员编写通用的代码,即可适用于不同的数据类型,而不必为每种类型编写不同的代码。这种编程方法的基本思想是将数据类型抽象化,使用泛型来表示数据类型,并在编写代码时使用泛型来代替具体的数据类型。Java、C#等编程语言都支持泛型编程。
纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。💬文章目录一.deque容器的基本概念二.deque容器常用操作①deque构造函数②deque元素操作③deque赋值操作④deque交换操作⑤deque大小操作⑥deque插入和删除一.deque容器的基本概念vector容器是单向开口的连续内存空间,deque(['dek])则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,可以理解为数据结构的双端队列。当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,全部元素都要后移,无法被接受。✅deque容器和v
纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。💬文章目录一.list容器基本概念二.list容器的常用操作list构造函数list迭代器获取list特性操作list元素操作list赋值操作list的交换、反转、排序、归并操作list比较操作list插入和删除操作一.list容器基本概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域。另一个是存储下一个结点地址的指针域。list容器的数据结构是一个
常用STL:vector变长数组,倍增的思想初始化://初始化vectora;vectora(n);vectora[n];vectora(n,0);//长度为n,值为0操作:size()//返回元素个数empty()//返回是否为空clear()//清空front()/back()//返回第一个/最后一个元素push_back()/pop_back()//在尾端插入元素/删除元素begin()/end()//迭代器[]//随机访问遍历:for(inti=0;i::iterator/*auto*/i=a.begin();i!=a.end();++i)for(autox:a)黑科技:支持比较运算,
文章目录vector成员变量默认成员函数构造函数拷贝构造赋值运算符重载函数析构函数迭代器beginendsize和capacityresizereserve[]push_backpop_backinserteraseswapvector成员变量_start指向容器的头,_finish指向容器当中有效数据的下一个位置,_endofstorage指向整个容器的尾默认成员函数构造函数 //构造函数 vector() :_start(nullptr) ,_finish(nullptr) ,_endofstorage(nullptr) {}拷贝构造先开辟一块与该容器大小相同的空间,然后
探索C++STL以获得终极性能博主简介一、引言二、C++STL简介2.1、STL是什么?2.2、STL中的常用组件2.3、STL的优点三、入门指南:了解基本概念和用法3.1、容器:vector、list、deque、set、map等3.2、算法:查找、排序、遍历等3.3、迭代器:使用不同类型的迭代器进行数据访问3.4、函数对象:自定义比较器、操作符重载四、提升性能的技巧4.1、选择正确的容器:根据需求选择最优容器4.2、STL内部实现细节4.3、使用算法的最佳建议4.4、迭代器的选择:迭代器性能差异和适用场景五、深入探索C++STL5.1、高级容器5.2、自定义容器适配器5.3、高级算法:复杂
文章目录默认成员函数构造函数拷贝构造函数赋值运算符重载函数析构函数beginendsizecapacityreserveeraseresizepush_backappendoperator+=insertswapsubstrc_stroperator[]findcleargetline>>运算符的重载默认成员函数构造函数构造函数设置为缺省参数,若不传入参数,则默认构造为空字符串。字符串的初始大小和容量均设置为传入C字符串的长度(不包括’\0’) //默认构造函数-全缺省 string(constchar*str="")//常量字符串以\0为结束标志 { _size=strlen(st
文章篇幅较长,越7万余字,建议电脑端访问文章目录一、前言1、C语言中的字符串2、string类的使用场景二、初步认识string类1、概述2、常用接口细述1)string类对象的默认成员函数2)string类对象的常见容量操作①size、length、capacity②maxsize③clear④empty⑤reserve⑥resize⑦shrink_to_fit3)string类对象的访问及遍历操作①operator[]②at③迭代器④范围for⑤front和back4)string类对象的修改操作①push_back②append③operator+=(string)④insert⑤ass